#include <typescommon.h>

// if 一些问题
int main(int argc, char **argv)
{
    int a = -1;     // 相当于a = (-2) + (1 << 1);
    int b = 1;      // 相当于b = (6 & (2 == 2));
    if (6 & 2 == 2) // 判断优先级问题。这里相当于(6 & (2 == 2))
    {
        logdebug("");
    }
    if ((6 & 2) == 2) // 判断优先级问题。这里相当于(6 & (2 == 2))
    {
        logdebug("");
    }

    if (a++, a) // 先执行a++， 再判断a
    {
        logdebug("");
    }

    if (a *= 100, a > 100) // 
    {
        logdebug("");
    }


    if (1 == 1 || 2 == 3 && 3 == 3)// 等于(1 == 1 || (2 == 3 && 3 == 3))
    {
        logdebug("");
    }

    if ((1 == 1 || 2 == 3) && 3 == 3)
    {
        logdebug("");
    }


    a = 1;
    b = 2;
    /*
    不建议。if后只有1条执行语句在if范围内，这样写可以。
    if (a == 1)
        printf("1\n");
    else
        printf("2\n");
    */
    /*
    if只能包含printf("1\n");，而printf("a\n");在if外。
    else将会报错，找不到if。
    if (a == 1)
        printf("1\n");
        printf("a\n");
    else
        printf("2\n");
    */
    // if都用括号，表示规范。
    a = 1;
    if (a == 1)
    {
        printf("1\n");
    }
    else
    {
        printf("2\n");
    }


    // 我们可能会少写一个等号。
    if(a = 4)// 容易出错,赋值4到a，a为非0，条件成立
    {
        logdebug("%d", a);
    }



    a = 1;
    // 不建议
    // if (a == 1)
    //     if (a > 3)
    //         printf("3\n");//这里调用logdebug("");有问题，将logdebug("")展开就知道问题了。
    //     else//else 对应的if是if (a > 3)。
    //         printf("4\n");
    if(a == 1)
    {
        if(a> 3)
        {
            logdebug("");
        }
        else
        {
            logdebug("");
        }
    }
    
    a = 1;
    // 不建议
    // if (a == 2)
    //     a++;// if只管一句话。
    //     a++;//
    if(a == 2)
    {
        a++;
    }
    a++;
    logdebug("%d", a);
    return 1;
}
